Packet-switched networks are responsible for forwarding packet-based traffic. In some hardware devices, such as switches and routers, packets are broken into fixed-length cells and forwarded from an ingress, across a switching fabric, to an egress, where the cells are typically reassembled into packets.
In systems with multiple switching fabrics, cells may be forwarded in parallel or serially. In a parallel configuration, cells associated with a packet are sent across a single fabric. Different packets may be sent simultaneously across different fabrics. In this configuration, an ordering protocol may be required to ensure that packets sent across different fabrics remain in proper order once received at the egress or possibly to ensure that packets which must be ordered relative to one another are sent serially across a single fabric. In a serial configuration, cells associated with a packet are sent across multiple fabrics. A packet in the process of being sent, i.e., a packet for which some but not all of its associated cells have been sent from the ingress to the egress, may be referred to as an in-flight or active packet. Packets that must be ordered relative to the in-flight packet must wait to be sent until the last cell of the in-flight packet is sent.
Ordering protocols typically entail a reordering overhead in both parallel and serial configurations. Systems with a substantial number of in-flight packets, ingress queues, and egress queues, often have additional ordering mechanisms such as ordering identifiers (IDs), semaphores to indicate packets received/IDs available for reuse, storage elements to track current positions, available IDs, etc. Ordering mechanisms may also reduce system bandwidth by delaying out-of-order packets that have been transmitted across a fabric until in-order packets are received. This would typically appear as an idle period followed by bursts of traffic at the egress output. Idle periods represent lost bandwidth that typically cannot be recovered. Similarly, for a plurality of switching fabrics with cells arbitrarily sent through the switching fabrics to maximize bandwidth allocation, reordering mechanisms would be required to reassemble packets from the cells.
In view of the desire to minimize lost bandwidth in a system including a plurality of switching fabrics, what is needed is an efficient packet-based traffic forwarding system that includes optimal load balancing across a plurality of switching fabrics. It would be advantageous to include redundancy by utilizing independent switching fabrics in the system.